#2015年国赛-程序设计题 穿越雷区
n = int(input())
arr = [list(map(str, input().split())) for _ in range(n)]
ex, ey = 0, 0

for i in range(n):
    for j in range(n):
        if arr[i][j] == 'A':
            #将起点坐标，上一状态，步数添加至队列
            start = (i, j, '', 0)
        if arr[i][j] == 'B':
            ex, ey = i, j

def bfs():
    dir = [(1, 0), (-1, 0), (0, 1), (0, -1)]  #初始化上下右左
    visited = set()  #用集合存储已经访问过的位置
    q = [start]  #使用列表作为队列，将起点添加进去
    while q:
        #队列中取出上一步坐标，上一状态，步数
        x, y, last, step = q.pop(0)
        for i, j in dir:
            dx, dy = x + i, y + j  #新坐标
            #判断新坐标是否在迷宫内，新坐标是否与上一状态相同，新坐标是否已经访问过
            if (0 <= dx < n and 0 <= dy < n
                and arr[dx][dy] != last and (dx, dy) not in visited):
                #标记位置为已访问
                visited.add((dx, dy))
                if dx == ex and dy == ey:
                    return step + 1
                q.append((dx, dy, arr[dx][dy], step + 1))

print(bfs())

